1. Field of the Invention
The present invention relates to technology for preventing problems from occurring due to version mismatch between an application and a system service executed on an image forming apparatus or an information processing apparatus.
2. Description of the Related Art
Recently, an example of an information processing apparatus, an image forming apparatus (to be referred to as a compound machine hereinafter) that includes functions of a printer, a copier, a facsimile, a scanner and the like in a cabinet is generally known. The compound machine includes a display part, a printing part and an image pickup part and the like in a cabinet. In the compound machine, three pieces of software corresponding to the printer, copier and facsimile respectively are provided, so that the compound machine functions as the printer, the copier, the scanner and the facsimile respectively by switching the software.
According to such a conventional compound machine, an application program is launched for each function unit such as printer, copier, facsimile and scanner, and each application program has a function to access hardware resources. At that time, it is assumed that a version of an operating system (OS) on which the application program based and a version of OS actually used in the compound machine are the same. However, for example, if the OS is upgraded so that the versions between the OSes are different, there may be a case where a function that has been used so far by the application becomes unusable, or the application itself may become unusable.
Thus, according to the conventional compound machine, if the OS is upgraded in the compound machine, it is required to recompiling the application such that the application operates on the upgraded OS.
Since the conventional compound machine is provided with each software for the printer, the copier, the scanner and the facsimile individually, much time is required for developing the software. Therefore, the applicant has developed an image forming apparatus (compound machine) including hardware resources, a plurality of applications, and a platform including various control services provided between the applications and the hardware resources. The hardware resources are used for image forming processes for a display part, a printing part and an image pickup part. The applications perform processes intrinsic for user services of printer, copier and facsimile and the like. The platform includes various control services performing management of hardware resources necessary for at least two applications commonly, performing execution control of the applications, and image forming processes, when a user service is executed.
According to such a new compound machine, the applications and the control services are provided separately. Thus, after the compound machine is shipped, users or third party venders can develop new applications to install on the compound machine. By doing so, various functions can be provided.
Since the new compound machine is provided with control services, separately from applications, for providing services commonly required by at least two applications, it is necessary to write source code for interprocess communication between the application and the various control services when developing an application.
When developing a new application, it is necessary to precisely grasp application program interfaces (API: including functions and events) provided by each control service and to write the source code according to a predetermined procedure. However, if upgrade of APIs is repeated due to debugging and addition of functions and the like, it becomes difficult for a vendor to develop applications since it is not clear which API version the application should comply with. Thus, there is a possibility that a version of an API used by the developed application for a control service is difference from a version of the API of the control service actually used in the compound machine. If this application is executed on the compound machine, an error may occur and the application may affect the combined machine.
This problem is a new problem that was not a problem for the conventional compound machine. In addition to the control service, if a module that provide services to applications via APIs is adopted, the same problem will arise. In addition, this problem is common to a general information processing apparatus (for example, general computer) in which an application is executed on a system software.